iT邦幫忙

2025 iThome 鐵人賽

DAY 18
0

在 WPF 裡,Binding 讓 UI 與資料能自動同步,但有時候我們還需要:

UI 狀態改變 → 樣式跟著變(例如滑鼠移上去變色)

資料值改變 → 樣式跟著變(例如股價大於 1000 就紅色)

事件觸發 → 做出動畫或其他效果

這些需求,可以透過 Trigger (觸發器) 來完成。


Trigger 的三種類型

  1. Property Trigger

當控制項的某個 屬性 改變時,自動套用樣式。

範例:滑鼠移上按鈕改變背景色

效果:

滑鼠移到按鈕上,背景會變成淺綠色。

滑鼠移開,恢復原本樣式。


  1. Data Trigger

根據 Binding 值 判斷條件,改變樣式。

範例:股價超過 1000 就顯示紅色

效果:

當 Price = 1000 → 文字變紅色

其他情況維持預設

小提醒:如果要做「大於 1000」的情境,需要用 DataTrigger + Converter,因為 DataTrigger 的 Value 只能比對單一值。


  1. Event Trigger

當某個事件發生時,觸發 Storyboard / 動畫。

範例:按下按鈕時閃爍背景

效果:

按下按鈕時,背景會閃爍黃色兩次。


綜合範例:股票漲跌顯示

假設我們有一個股票清單,要顯示不同顏色:

股價 ≥ 1000 → 紅色

股價 < 1000 → 綠色


小結

今天我們學會了 Trigger 的三種類型:

Property Trigger:根據控制項屬性(如 IsMouseOver)改變樣式

Data Trigger:根據 Binding 的資料值改變樣式

Event Trigger:根據事件觸發動畫或其他效果

Trigger 讓 WPF 的 UI 更加動態與直覺,能有效減少程式碼中的 if/else 與事件處理。


上一篇
Day 17 - WPF Data Binding 進階
下一篇
Day 19 - WPF Command 模式
系列文
30天快速上手製作WPF選股工具 — 從C#基礎到LiteDB與Web API整合21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言